Computer telephony integration including option for calling party to re-direct unanswered call from voice messaging to second lower interest users associated with called party

ABSTRACT

In a CTI system an incoming call is alerted to the called user&#39;s list of users who have expressed a primary level of interest in that called user&#39;s incoming calls, and the call is routed by the PBX to a Voicemail system if, for example the call is not answered within a predetermined time. The Voicemail system plays an announcement inviting the caller to key “one” to have the call re-presented, and if that digit is keyed by the caller, the Voicemail system makes a call to a predetermined extension of the PBX. The PBX recognizes, e.g. by using call ID or DNIS, that the call received on that extension is a re-presented call, and alerts the called user&#39;s list of users who have expressed a secondary level of interest, with or without alerting the “primary” list users. A tertiary list of users who have expressed a tertiary level of interest in that called user&#39;s incoming calls may be used in the event that the call is routed to the Voicemail system for a second time and the caller again keys “one”.

This application is the US national phase of international applicationPCT/GB02/01287 filed 18 Mar. 2002 which designated the U.S.

BACKGROUND

1. Technical Field

This invention relates to the use of a computer for controlling theoperation of a telephony system, such use is known in the art ascomputer telephony integration (CTI), and the systems employing suchcontrol are known as CTI systems.

2. Related Art

As a general background, the reader will find examples of such CTIsystems disclosed in the articles “Introduction to Computer TelephonyIntegration”, by A. Catchpole, G. Crook, and D. Chesterman, BritishTelecommunications Engineering, Vol. 14, July 1995; “Computer TelephonyIntegration—The Meridian Norstar”, by A. Catchpole, BritishTelecommunications Engineering, Vol. 14, October 1995; “ComputerTelephony Integration—The Meridian 1 PBX”, by P. Johnson, A. Catchpole,and L. Booton, British Telecommunications Engineering, Vol. 15, July1996; “Callscape—Computer Telephony Integration for the Small Business”,by G. Hillson, G. Hardcastle, and M. Allington, BritishTelecommunications Engineering, Vol. 15, January 1997, and “CallCentres—Doing Business by Telephone” by M. Bonner, BritishTelecommunications Engineering, Vol. 13, July 1994.

Furthermore, a method is known of operating a CTI system comprising aCTI-enabled PBX, an associated CTI controller, and a plurality of userworkstations, each workstation comprising a computer connected to theCTI controller and a telephone connected to the PBX In this method, theCTI controller stores respective user-associated profiles, eachincluding a user-associated workgroup containing names of users of thesystem, in whose telephony status the user associated with thatworkgroup is interested, and the PBX on receipt of an incoming callretrieves from the signalling data a dialled number (known as theDialled Number Identification Service number (DNIS)) and the callingline identity or identification (CLI), and passes these to the CTIcontroller. The CTI controller translates the DNIS to a username for thecalled user and accesses the workgroups to find out which contain thatusername. The CTI controller then sends a message containing thatusername to each computer at which a user, whose workgroup contains thatusername, is currently logged on to the CTI controller. It will beappreciated that in the art, the terms log on, logon, log in and loginare synonymous and interchangeable, as are the terms log off, logoff,log out and logout.

While a user is currently logged on to the CTI controller, his computerdisplays a respective set of icons representing the members of thatuser's workgroup, the icons being in the form of respective facialimages, each icon including a text display, e.g. “Free”, to indicate thecurrent telephony status of the corresponding user, and upon receipt ofthis message, the computers change the text display of the iconcorresponding to the received user name to “Ringing”. A user can answeran incoming call for a member of his workgroup by sending an answermessage from his computer to the CTI controller, and the CTI controllerresponds by commanding the PBX to connect the incoming call to thatuser's telephone. This method is referred to as Distributed OfficeTelephony (DOT).

BRIEF SUMMARY

According to a first aspect of the present invention, there is provideda method of operating a computer telephony integration (CTI) systemcomprising a switch and a CTI controller therefor, voice messagingapparatus connected to the switch, and a plurality of user workstations,each workstation comprising a computer connected to the CTI controllerand a telephone connected to the switch, the method comprising the stepsof:-

storing, for each user of the system, a respective first user-associatedlist of users who have assigned a first level of interest in thetelephony status of that user, herein referred to as that user's firstcommunity of interest, and a respective second user-associated list ofusers who have assigned a second level of interest in the telephonystatus of that user, herein referred to as that user's second communityof interest;

responding to receipt at the switch of an incoming call, referred toherein as an original incoming call, by retrieving from signalling dataof that original incoming call a called user identity, referred toherein as the original called user identity, and by starting a countdowntimer from a predetermined value;

sending an incoming call message from the CTI controller to therespective computers of those members of that original called user'sfirst community of interest who are currently logged on to the CTIcontroller;

responding to receipt of the incoming call message at those respectivecomputers by generating an alert;

in the event that the countdown timer reaches zero, routing thatoriginal incoming call to the voice messaging apparatus and sending achange icon message to those respective computers to change therespective generated alerts;

responding to receipt at the voice messaging apparatus of that routedoriginal incoming call and of predetermined dialled data from the callerby making a related call from the voice messaging apparatus to apredetermined called user identity of the switch;

recognising that a call received at the switch is such a related call byvirtue of the presence of that predetermined called user identity in thesignalling data of that received call;

identifying the original incoming call to which that received call is sorelated, and, therefore, the original called user identity; and

sending an incoming call message from the CTI controller to therespective computers of those members of that called user's secondarycommunity of interest who are currently logged on to the CTI controller.

Preferably, when the incoming call message is sent to the respectivecomputers of those members of that called user's secondary community ofinterest who are currently logged on to the CTI controller, it is alsosent to the respective computers of those members of that called user'sprimary community of interest who are currently logged on to the CTIcontroller.

Preferably, when the step of generating an alert comprises changing auser-associated icon from an idle state to an incoming call state, therespective computers may respond to said change icon message to changethe respective user-associated icons back to their idle state.

Alternatively, when the step of generating an alert comprises changing auser-associated icon from an idle state to an incoming call state, therespective computers may respond to said change icon message to indicatethat the original incoming call has been routed to the voice messagingapparatus.

According to a second aspect of the present invention, there is provideda computer telephony integration (CTI) system comprising a switch and aCTI controller therefor, voice messaging apparatus connected to theswitch, and a plurality of user workstations, each workstationcomprising a computer connected to the CTI controller and a telephoneconnected to the switch, the system comprising:-

means for storing, for each user of the system, a respective firstuser-associated list of users who have assigned a first level ofinterest in the telephony status of that user, herein referred to asthat user's first community of interest, and a respective seconduser-associated list of users who have assigned a second level ofinterest in the telephony status of that user, herein referred to asthat user's second community of interest;

means for responding to receipt at the switch of an incoming call,referred to herein as an original incoming call, by retrieving fromsignalling data of that original incoming call a called user identity,referred to herein as the original called user identity, and by startinga countdown timer from a predetermined value;

means for sending an incoming call message from the CTI controller tothe respective computers of those members of that original called user'sfirst community of interest who are currently logged on to the CTIcontroller;

means for responding to receipt of the incoming call message at thoserespective computers by generating an alert;

means responsive to the countdown timer reaching zero for routing thatoriginal incoming call to the voice messaging apparatus and for sendinga change icon message to those respective computers to change therespective generated alerts;

means for responding to receipt at the voice messaging apparatus of thatrouted original incoming call and of predetermined dialled data from thecaller by making a related call from the voice messaging apparatus to apredetermined called user identity of the switch;

means for recognising that a call received at the switch is such arelated call by virtue of the presence of that predetermined called useridentity in the signalling data of that received call;

means for identifying the original incoming call to which that receivedcall is so related, and, therefore, the original called user identity;and

means for sending an incoming call message from the CTI controller tothe respective computers of those members of that called user'ssecondary community of interest who are currently logged on to the CTIcontroller.

Preferably, the CTI system is arranged such that when the incoming callmessage is sent to the respective computers of those members of thatcalled user's secondary community of interest who are currently loggedon to the CTI controller, it is also sent to the respective computers ofthose members of that called user's primary community of interest whoare currently logged on to the CTI controller.

The CTI system may be arranged such that the generated alert compriseschanging a user-associated icon from an idle state to an incoming callstate, and such that the respective computers respond to the change iconmessage by changing the respective user associated icons back to theiridle state.

Alternatively, the CTI system may be arranged such that the generatedalert comprises changing a user-associated icon from an idle state to anincoming call state, and such that the respective computers to thechange icon message by indicating that the original incoming call hasbeen routed to the voice messaging apparatus.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of apparatus and methods of the present inventionwill now be described by way of example with reference to the drawings,in which:-

FIG. 1 is a block diagram of an apparatus of the present invention;

FIG. 2 shows the component parts of a CTI server of the apparatus ofFIG. 1;

FIG. 3 shows the component parts of a CTI client of the apparatus ofFIG. 1;

FIG. 4 shows the modules of a CTI program which controls the operationof the CTI server;

FIG. 5 shows the structure of part of a number-to-name table used by theCTI server; and

FIGS. 6A and 6B are a flow chart showing steps of a method of thepresent invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

In this description the following acronyms are used:-

CLI—Calling Line Indication, also known as Calling Line Identity,

CSTA—Computer Supported Telecommunications Applications,

CTI—Computer Telephony Integration,

DNIS—Dialled Number Identification Service number,

DOT—Distributed Office Telephony,

ISDN—Integrated Services Digital Network,

LAN—Local Area Network,

PBX—Private Branch Exchange,

RAM—Random Access Memory,

ROM—Read Only Memory,

In FIG. 1 there is shown a CTI system 10, also referred to as a DOTsystem, comprising a CTI-enabled PBX 12, constituting a switch of thepresent invention, connected to an ISDN 14 via an ISDN primary rate link16, a CTI server 18 connected to the PBX 12 via a data link 20, and aVoice Mail system 21 referred to as VM 21 connected via a firsttelephony link 23 to a port of the PBX 12 corresponding to extensionnumber 6000 and via a second telephony link 25 to a port correspondingto extension number 6001, and an operator console 27 connected to a portof the PBX 12 corresponding to extension number 7777. The CTI server 18constitutes a CTI controller of the present invention. Herein, the terms“Voice Mail” and “Voicemail” are used interchangeably and synonymously.

The PBX 12 has a CTI interface 22 which operates in accordance with theabovementioned CTI protocol, CSTA, and the CTI server 18 has a CTIinterface 24 which operates in accordance with that protocol. There area number of proprietary CTI protocols, e.g. Meridian Link from NortelNetworks, and several “open”, or proposed standard, CTI protocols,including CSTA, but the performance of the present invention is notdependent upon the use of any particular CTI protocol.

The CTI system 10 also comprises a plurality of work desks, also knownas workstations, 26R, situated remotely from the PBX 12, and a pluralityof work desks 26L, situated locally to the PBX 12, each work desk havinga respective telephone terminal 28R, 28L, referred to hereinafter as atelephone, and a respective computer terminal 30R, 30L, referred tohereinafter as a CTI client, or just client. For convenience, only oneremote work desk 26R and only two local work desks 26L are shown.

The CTI server 18 and the local CTI clients 30L are directly connectedto a LAN 32, and each remote CTI client 30R is indirectly connected tothe LAN 32 via the ISDN 14 when a user at the respective remote workdesk 26R makes a call to a predetermined destination number for accessto the LAN 32. The PBX 12 receives that call and connects it to acorresponding port which is connected to the LAN 32 via an ISDN/LANbridge 34. In a variant, the ISDN/LAN bridge 34 is connected directly tothe ISDN 14.

In this description, the terms user and workgroup member are usedinterchangeably and synonymously.

In FIG. 2, the CTI server 18 comprises an internal bus 36 to which isconnected a processor 38, a RAM 40, a ROM 42, a data communicationsstack 44, and a database 46. The ROM 42 contains a conventionaloperating system program for controlling the processor 38, and a CTIprogram 50 for performing DOT functions including managing user profiles52, and tables 54. The database 46 stores call logs 56, the userprofiles 52, the tables 54, and user-associated stores 48.

Each user-associated store 48 comprises a workgroup substore 48W, andthree substores 48-1, 48-2, 48-3, ranked in numerical order.

As shown in FIG. 3, the CTI client 30L comprises an internal bus 70 towhich is connected a processor 72, a RAM 74, a ROM 76, and a datacommunications stack 78. The ROM 76 contains an operating system programfor controlling the processor 72, and also contains a CTI program 80 forthe operation of the CTI client 30L and including a Client Previewmodule 82 and a Client Countdown module 83.

As shown in FIG. 4, the CTI program 50 comprises a number of mainmodules, namely: a Configuration module 58; an Incoming Call module 60,including a Server Preview submodule 68 and a Server Countdown submodule69; an Outgoing Call module 62; a Call Log module 64; and a Profilesubmodule 66 for managing the user profiles 52.

Suppose that within the company owning the CTI system there is adepartment comprising ten users having usernames A to J. The respectiveworkgroup substores 48W for those users all contain the usernames A toJ, together with the respective user's assigned level of interest, alsoreferred to as an importance rating, which the user will select fromthree levels, primary (1), secondary (2), and tertiary (3). The defaultassigned level for all usernames, other than the associated user's ownusername, in a workgroup substore 48W is tertiary, but the user canraise this to primary or secondary. The default assigned level for theassociated user's own username is primary.

Suppose that user A has assigned levels as follows: usernames B to E(primary), usernames F and G (secondary) and usernames H to J (default).The other users will assign levels according to their particularinterest in their respective colleagues' work.

When user A logs on, the CTI server 18 accesses his workgroup substore48W, reads the usernames and their associated levels, and write A'susername (username A) into the substores 48-1, 48-2, 48-3 as follows:username A in the respective substores 48-1 for users A to E, in therespective substores 48-2 for users F and G, and in the respectivesubstores 48-3 for users H to J. When user A logs off, the CTI server 18accesses all the substores 48-1, 48-2, 48-3 and deletes his username.

While a user is logged on to the CTI server 18, his computer displays arespective set of icons representing the members of that user's primaryworkgroup. When the user launches his DOT client application, the CTIcontroller accessed that user's workgroup substore 48W and instructedthe display on that user's computer of icons corresponding to thoseusernames with assigned primary level. In other words, those usernamesmay be thought of as a list of “Users in whose calls I am (primarily)interested”.

A user's substore 48-1 is referred to herein as containing the primarycommunity of interest (COI) for his incoming calls, and may be thoughtof as a list of “Users (primarily) interested in my incoming calls”, andmutatis mutandis for his other substores 48-2 and 48-3.

It will be thus appreciated that the default assigned level for a user'sown username is primary so as to ensure that a called user is always amember of his own primary workgroup and his primary COI. In other words,that he always has his own icon displayed as a member of his workgroup,and that he is immediately alerted on receipt at the PBX 12 of a callfor him.

When an incoming call is received at the PBX 12 for a called user who islogged on to the CTI server 18, i.e. has an active DOT clientapplication, the CTI program 50 accesses that called user's substore48-1, generates respective screen alerts for each of the members of thatprimary COI, sets a respective Alerted flag for that substore 48-1, andcauses the called user's Client Countdown module 83 to start countingdown from a countdown value stored in that user's profile. This will bea default value, unless the user has entered his preferred value.

The screen alert for the called user will be in the form of a screen popcontaining the name of the caller, callername, (if this is recorded intranslation tables 54 in the database 46) and any other details that thecalled user might have selected to be included.

The screen alert for the other members of that primary COI will be inthe form of a change in the displayed icon representing the called user.The icon is in the form of a colour image of the user's face immediatelyabove a text bar in which is indicated the user's telephony status. Whenthe user is not logged on at a work desk 26, the CTI server 18 instructsthe clients 30 of logged on members of that user's primary COI todisplay “Free” in the telephony status bar with grey fill, i.e.background colour. When the user has logged on at a work desk 26, theCTI server 18 instructs those clients 30 to display “Free” in thetelephony status bar with green fill: and when, as in this case of anincoming call for the user, the CTI server 18 instructs those clients 30to display the callername (or “Unknown”) in the telephony status barwith red fill; and when the called user has answered the call, the CTIserver 18 instructs each such client 30 to display “Busy” in thetelephony status bar with yellow fill.

When a user sees a change in a displayed icon indicating that anincoming call has been received for the associated user, he can use hismouse to click on that icon. This activates his Client Preview module82, which generates a screen pop displaying information about that call.This is referred to as previewing the call.

In a variant, instead of actual user-associated substores 48W, 48-1,48-2 and 48-3, there is provided a logically equivalent arrangementwherein the CTI server 18 associates a respective session data store,referred to simply as a session, with a user when that user logs on tothe CTI server 18. The session contains the network identity of theclient at which the user logs on, the telephone number associated withthat client, and the call data of each current call associated with thatuser. When a call is received for a user, the Server Preview submodule68 checks the workgroup, in respective stores equivalent to substores48W, of each user who has a current session, i.e. is logged on, and foreach such workgroup that contains the username of the called user withan assigned level of 1 sends a Call Received message, described below,to the user associated with such workgroup. In a further variant, theCTI server 18 maintains a list of all users who are currently logged on,also referred to as being active, and this list is referred to as theactive list. Thus references to messages being sent to those members ofthe workgroup who are currently active encompass any of the abovemethods, or equivalent methods, of ascertaining which of the members arecurrently logged on at a client. As an example of the use of an activelist, if a call is received for, say, username B, then for each entry inthe active list the respective workgroup is accessed to see whether itcontains the username B with an assigned level of 1, and if so, then theuser associated with that workgroup is sent a Call Received message inrespect of the incoming call.

The steps of a preferred method of the present invention will now bedescribed with reference to the flow chart of FIGS. 6A and 6B.

At step 90, the PBX 12 receives an incoming call from the ISDN 14,retrieves from the call signalling data a CLI, i.e. the telephone numberof the calling terminal, constituting a caller identity of the presentinvention, and also a DNIS, i.e. the dialled telephone number, e.g.xxxxx yy5627 and constituting a called user identity of the presentinvention, allocates a unique call ID, and, as is known in the art,presents the call to an internal controlled directory number (CDN),corresponding to 5627, as a result of which the PBX 12 responds bypassing all this data to the CTI server 18 in a Route Request message.In the art, such CDNs are also called routing points.

At step 92, the Incoming Call module 60 uses the received DNIS to accessthe DNIS-to-username translation table 54A (FIG. 5), retrieve a usernameassociated with the received DNIS, and pass the username to the Profilesubmodule 66. Some users, e.g. those with usernames X and Y in FIG. 5,might be associated with two or more different DNISs, e.g. one forprivate calls, and another for business calls.

At step 94, the Profile submodule 66 uses the retrieved username toaccess the profiles 52 and retrieve a profile associated with theretrieved username. This profile contains the data on how that userwishes the CTI server 18 to handle the user's telephony events. Acurrent status flag associated with Logged In Actions and Logged OutActions sections determines which of these two is made available to theServer Preview submodule 68. In a variant, the CTI server 18 manages alist of logged in users, which the Profile submodule 66 consults toascertain which of the two Actions sections is to be used.

At step 96, assuming that the user is logged in, the Server Previewsubmodule 68 refers to the user's Logged In Actions section of theretrieved profile and commands the PBX to make a respective internalcall to the or each number listed, the calls being made simultaneouslywhen there are two or more numbers listed; and the Countdown submodule69 also refers to the user's Logged In Actions section of the retrievedprofile, selects the highest ranking call-related feature that has anentry, e.g. Bob, and tries to match this with the caller identity, usingthe CLI-to-callername translation table 54B, and if there is a match,loads a countdown timer with the value in that call-related feature,i.e. 20, starts the countdown timer, and passes this value to the ServerPreview submodule 68. If there is no match, the Countdown submodule 69selects the next highest ranking call-related feature that has an entry,i.e. Upminster, and tries to match this with the area code of the CLI,using the area code-to-name translation table 54D, and so on.

In this example it will be assumed that the user has not selected Homeor Mobile, and has not selected Divert To Mail. In other words, the listcontains only the default number for This Desk. The Server Previewsubmodule 68, in known manner, instructs the PBX 12 to monitor andreport telephony activity at the or each such PBX extension listed inthe user's Logged In Actions. Accordingly, in this example, the PBX 12reports that it has made a call, i.e. applied ringing current, to thePBX extension for the This Desk number, and reports the PBX-allocatedcall ID for that call. If the user has more than one number listed inhis Logged In Actions, the PBX 12 reports the respective PBX-allocatedcall ID for each such call. The PBX also reports the allocated call IDwhen it makes a call to a remote network destination, e.g. a user'stelephone 28R.

Also, at step 96, the Server Preview submodule 68 retrieves contents ofthe substore 48-1 associated with the retrieved username, i.e. all usersrecorded as having declared an interest, with an assigned level of 1, inthe telephony status of the called user, and sends a Call Receivedmessage to each of the usernames retrieved from that substore 48-1, thismessage being sent to the clients where those users are currentlyrecorded as being logged in. Hereinafter, with respect to a called user,these users are referred to as the substore 48-1 members. This CallReceived message comprises an incoming call ID; the CLI; a correspondingcallername, if there is an entry in the table 54, otherwise the textUnknown; the retrieved username; the Divert to Mail countdown timerstart value; and any notes that the user has entered.

At step 98, at the clients of all the substore 48-1 members therespective Client Preview module 82 accesses the user's downloadedpersonal directory using the CLI received from the Server Previewsubmodule 68 and checks whether the user has entered a “familiar” orinformal name for that CLI, i.e. a name other than a formal name held inthe system-associated translation tables. Different substore 48-1members might have different familiar names for a given caller. If theuser has no entry in his personal directory for that CLI, the ClientPreview module 82 changes the telephony status bar in the called user'sicon from green fill with the text “Free” to red fill with either thereceived callername or “Unknown” to indicate that a new call has arrivedfor that user. However, if there is such an entry, the Client Previewmodule 82 retrieves the familiar name, changes the telephony status barin the called user's icon to red fill with the retrieved familiar name.The Client Preview module 82 also generates an audio alert via a soundcard of the client; and loads a countdown timer with the received startvalue and starts the timer.

At step 100, at the called user's client only, the Client Preview module82 immediately passes the countdown timer start value to a ClientCountdown module 83 which responds by allocating a respective calleduser-associated countdown timer, loading the start value, and startingthe countdown operation. The Client Preview module 82 additionallygenerates a screen pop bearing the title “Incoming Call For:”, followedby the called username. The screen pop displays information comprisingcurrent date and time, the CLI, the familiar name (if any), the notes,and the current countdown timer value, received from the ClientCountdown module 83; and includes buttons for Answer, End Call, Send ToVmail, Apply and Dismiss, and an icon for Personal Directory. Theoperation of these buttons, other than those for Apply and PersonalDirectory, is self-evident and will not be described. The Apply buttonis used to send an Apply message to the CTI server 18 with any changesthat the user has entered via the screen pop. For example, if neitherthe global directory in the CTI server 18 nor the user's personaldirectory yet contains an entry for the received CLI, the user canoverwrite “Unknown” with a name and click on Apply. This creates anentry in the user's personal directory and sends an Apply message to theCTI server 18. Similarly, the user can update the notes and click on theApply button. The Personal Directory button is conventional, except thatwhen the user clicks on this button, the list of names of his personaldirectory appears in a window, with the entry corresponding the currentCLI highlighted and thus ready for immediate selection, if there is suchan entry. This facilitates situations where the user wishes to add thename and address details of a new caller by first typing the caller'sname over “Unknown” and clicking on the Apply button, then clicking onthe Personal Directory button, then clicking on a Select button in thepersonal directory window to gain access to an address part of thepersonal directory for the new entry. The user then types in the addressdetails and clicks on the Apply button to effect the entry into hispersonal directory of the new text and to send a corresponding Applymessage to the CTI server 18.

At step 102, any of the substore 48-1 members, other than the userhimself, who already has the relevant screen pop on his screen, canclick on the user's icon to preview the call. This activates the ClientPreview module 82 to generate an Incoming Call screen pop to bedisplayed on that member's screen, using the information received fromthe Server Preview submodule 68, and to send a Preview Call message tothe Server Preview submodule 68. The Server Preview submodule 68 uponreceipt of a first Preview Call message for that call ID generates arespective Preview List for that call ID, adds that member's username tothe Preview List, broadcasts the Preview List to all the substore 48-1members, and passes the Preview List to the Call Log module 64 forstoring. For subsequently received Preview Call messages for that callID, the Server Preview submodule 68 adds the respective members'usernames to the existing Preview List.

The clients are arranged to display the received Preview List in theIncoming Call For screen pop. In this way, when a member previews theuser's incoming call, the member can see who is calling, any notes thatthe user has entered in his profile for that caller, who else ispreviewing that call, and the time left before the call is sent to VoiceMail.

When a member closes their screen pop, in conventional manner byclicking on a Quit button or on the standard Windows “X” close icon,their Client Preview module 82 sends a Cease Preview message to the CTIserver 18, where the Server Preview submodule 68 updates the PreviewList by deleting that member's username from the Preview List, andsending the updated Preview List to all the substore 48-1 members.

The present invention is concerned with the operation of the DOT systemin the event that not one of the called users' primary COI answers thecall and the countdown timer reaches zero (FIG. 6B, step 104) resultingin the CTI server 18 commanding the PBX 12 to route the call to the VM21 (FIG. 6B, step 106) by sending a Route Select message containing thecall ID and the extension number to which the VM 21 is connected, i.e.6000. The CTI server 18 also sends a Go To Idle message to each of theclients of the primary COI to cause the called user's icon to changeback to its previous Free state. In variants, the message is a ChangeIcon message containing an icon identifier corresponding to the callhaving been routed to the VM 21.

In this embodiment, the operator console 27 is assigned the extensionnumber 5678, and the VM 21 responds (FIG. 6B, step 108) to a call routedfrom the switch by playing an announcement which includes the words “Keyzero to be connected to an operator, or key one to re-present thiscall”. In a variant, the announcement includes the words “or leave amessage”. In a variant, the call routed from the switch includes in itssignalling information the DNIS xxxxx yy5627. The VM 21 retrieves theDNIS from the received call and uses it to access a store ofpersonalised announcements. These might be, for example announcementsrecorded by the users of the DOT system.

If the caller responds to the announcement by keying the digit zero onhis telephone key pad, a dual tone multi frequency (DTMF) receiver 29 ofthe VM 21 detects the presence of the tones corresponding to the digitzero and provides a corresponding output. The VM 21 control programresponds to that output by initiating a call to the PBX 12 via thesecond telephony link 25, i.e. presenting off-hook state to thecorresponding port, and when the PBX 12 responds with dial tone, bysending telephony signalling for the pre-assigned extension number 7777.This number is also a CDN (route point), and the PBX 12 responds innormal manner by sending to the CTI server 18 a Route Request containingthe requested number 7777. The CTI server 18 accesses its database andretrieves the stored extension number, say 5678, for the entrycorresponding to 7777.

The CTI server 18 now sends a Routing message to the PBX 12 forcompletion of the call from the VM 21 to extension 5678. The VM 21connects the voice channel of its incoming call to that outgoing call,i.e. trombones the call, to complete the voice connection for the callerthrough to the operator. In variants, the PBX 12 performs routeoptimisation, connecting the incoming call directly to extension 5678,and releasing the call to the VM 21, which responds by presentingon-hook state on the link 25.

If the caller responds to the announcement by keying the digit one (FIG.6B, step 110), the DTMF receiver 29 provides a corresponding output, theVM 21 control program responds to that output by initiating a call tothe PBX 12, and when the PBX 12 responds with dial tone, sendingtelephony signalling for the pre-assigned extension number 8888 (FIG.6B, step 112), constituting a predetermined called user identity of thepresent invention, and including the call ID of that call routed fromthe PBX 12. The number 8888 is also a CDN, and the PBX 12 responds bysending to the CTI server 18 a Route Request containing the requestednumber 8888. The CTI server 18 recognises from the call ID that thiscall from the VM 21 is a re-presented call in respect of the originalcall to 5627, and accesses its database again for the entrycorresponding to 5627.

The CTI server 18 checks the state of the Alerted flag for the substore48-1, finds that it is set, steps on to check the state of the Alertedflag for the substore 48-2, and, upon finding that it is not set,proceeds to generate respective screen alerts (FIG. 6B, step 114) foreach of the members of the primary COI (substore 48-1) and the secondaryCOI, i.e. the substore 48-2, and to set a respective Alerted flag forthe secondary COI (substore 48-2). The called user's Client Countdownmodule 83 is again triggered to start counting down from the countdownvalue.

The generated screen alerts in this case display the text“Re-presented”, or some other suitable text, so that the alerted userwill immediately know that the caller has requested the call to bere-presented instead of leaving a message in the VM 21.

In the event that no one of the called users' primary and secondary COIsanswers the re-presented call and the countdown timer reaches zero (FIG.6B, step 116), the CTI server 18 responds by first releasing theoriginal incoming call from the VM 21, and then (FIG. 6B, step 118), inthe same way as before, (i.e. repeating steps 106 to 112) routing thecall again to the VM 21, and this time sending a Go To Idle message toeach of the clients of both the primary and the secondary COIs to causethe called user's icon to change back to its previous Free state.

If the caller responds to the VM 21 announcement by again keying thedigit zero on his telephone key pad, the VM 21 will again send telephonysignalling for the pre-assigned extension number 8888 and including thecall ID of that call routed from the PBX 12. The PBX 12 will againrespond in normal manner by sending to the CTI server 18 a Route Requestcontaining the requested number 8888. The CTI server 18 recognises fromthe call ID that this call from the VM 21 is a re-presented call inrespect of the original call to 5627, and accesses its database againfor the entry corresponding to 5627.

The CTI server 18 checks the state of the Alerted flag for the substore48-1, finds that it is set, steps on to check the state of the Alertedflag for the substore 48-2, finds that it is set, steps on to check thestate of the Alerted flag for the substore 48-3, and, upon finding thatit is not set, proceeds to generate respective “Re-presented” screenalerts (FIG. 6B, step 120) for each of the members of the primary COI(substore 48-1), the secondary COI (the substore 48-2), and the tertiaryCOI, i.e. the substore 48-3, and to set a respective Alerted flag forthe tertiary COI (substore 48-3). The called user's Client Countdownmodule 83 is again triggered to start counting down from the countdownvalue.

If a user answers a re-presented call, the CTI server 18 sends a Routingmessage to the PBX 12 for completion of the call from the VM 21 to theextension of the answering user (FIG. 6B, step 122). The VM 21 connectsthe voice channel of its incoming call to its outgoing call, i.e.trombones the call, to complete the voice connection for the callerthrough to the answering user. Again, in variants, the PBX 12 performsroute optimisation, connecting the incoming call directly to theanswering user, and releasing the call to the VM 21.

In the event that no one of the called users' primary, secondary andtertiary COIs answers the re-presented call and the countdown timerreaches zero, the CTI server 18 responds by first releasing the originalincoming call from the VM 21, and then connecting the caller to anannouncement facility for the delivery of a “Your re-presented callcannot be answered at this time. Please try again later”. In a variant,the CTI server 18 responds by first releasing the original incoming callfrom the VM 21, routing the call again to the VM 21, and sendingrespective Go To Idle messages. However, in this variant, the CTI server18 sends a command to the VM 21 to play a different announcement whichomits the words “or key one to re-present this call”. In this way, theuser knows that the DOT system has re-presented the call to the widestCOI but that no one has answered, and the user now has the choice ofleaving a message with the VM 21 or keying zero to be connected to theoperator.

Whereas in the specific embodiments described above the call wasre-presented to successively larger COIs, each of which included thecalled user's primary COI, in variants, the first re-presenting is to aCOI which does not include the called user's primary COI, e.g. just thecalled user's secondary COI, and similarly the second re-presenting isto the called user's tertiary COI. This enables users to choose whichre-presenting to receive a screen alert for, e.g. user A can assign bothprimary and tertiary levels to user B, so that when user A logs on, hisusername A is written into user B's substores, 48-1 and 48-3. Thus, userA's client does not generate a “Represented” screen alert upon the firstre-presenting of a call to user B, but it will generate a “Re-presented”screen alert upon the second re-presenting of that call.

In variants, the VM 21 responds to the caller leaving a message bysending a signal to the CTI server 18, which responds by sending acorresponding Change Icon message to the clients for indicating that thecaller is leaving a message on the VM 21. The data for displaying thewhole range of icons is stored in the clients and the Change Iconmessage contains an icon identifier which commands the clients whichicon is to be displayed next.

In the specific embodiments described above, the CTI server 18constitutes means for storing, for each user of the system, a respectivefirst user-associated list of users who have assigned a first level ofinterest in the telephony status of that user, herein referred to asthat user's first community of interest, and a respective seconduser-associated list of users who have assigned a second level ofinterest in the telephony status of that user, herein referred to asthat user's second community of interest; the PBX 12 and the CTI server18 together constitute means for responding to receipt at the switch ofan incoming call, referred to herein as an original incoming call, byretrieving from signalling data of that original incoming call a calleduser identity, referred to herein as the original called user identity,and by starting a countdown timer from a predetermined value; the CTIserver 18 itself constitutes means for sending an incoming call messagefrom the CTI controller to the respective computers of those members ofthat original called user's first community of interest who arecurrently logged on to the CTI controller; the CTI program 80constitutes means for responding to receipt of the incoming call messageat those respective computers by generating an alert; the CTI server 18and the PBX 12 together constitute means responsive to the countdowntimer reaching zero for routing that original incoming call to the voicemessaging apparatus and for sending a go to idle message to thoserespective computers to cease the respective generated alerts; the VM 21(including its DTMF receiver 29) together with the CTI server 18 and thePBX 12 constitutes means for responding to receipt at the voicemessaging apparatus of that routed original incoming call and ofpredetermined dialled data from the caller by making a related call fromthe voice messaging apparatus to a predetermined called user identity ofthe switch; the CTI server 18 constitutes means for recognising that acall received at the switch is such a related call by virtue of thepresence of that predetermined called user identity in the signallingdata of that received call; the CTI server 18 constitutes means foridentifying the original incoming call to which that received call is sorelated, and, therefore, the original called user identity; and the CTIserver 18 constitutes means for sending an incoming call message fromthe CTI controller to the respective computers of those members of thatcalled user's secondary community of interest who are currently loggedon to the CTI controller.

Whereas the specific embodiments described above are based on a switchin the form of a PBX, it will be appreciated that the present inventionembraces other forms of switching function. For example, the switch canbe a public network switch, such as a Nortel DMS100 switch which is usedin known CTI arrangements in conjunction with a CompuCall CTIcontroller; and other forms of switching function include switches knownas Automatic Call Distributor (ACD), Interactive Voice Response (IVR),and server PBX. Furthermore, the type of switching is not limited to anyone form, and, in addition to switched circuit technology, includesAsynchronous Transfer Mode (ATM) switching, and Voice over InternetProtocol (VoIP) switching. With regard to this last form of switching,the switch can be a PBX having an Internet Card, or it can be a generalpurpose computer, e.g. one running Windows NT, having an Internet card,e.g. a Dialogic Internet card, and in this latter case the CTIcontroller function is provided by a program running in the computer,rather than in a separate controller. Furthermore, the telephones at theworkstations can connect to their respective clients via Internet phonejacks, and in an alternative arrangement telephony can be provided forthe user via a sound card in his client.

Thus, it can be seen that in general the present invention can beimplemented in any computer controlled switch, by means of a suitablecontrolling program.

In the above specific embodiments, the called user is an individualperson who normally works at a workstation. It will be appreciated thata DNIS need not correspond to an individual person, but may relate to adepartment or group, or a specific function within a company.Furthermore, more than one DNIS can correspond to such a function.

Similarly, the present invention includes caller identities other thanthe abovementioned CLI. These include a cell identity when the caller isusing a mobile telephone, an alphanumeric string, an Internet Protocoladdress, and “null” information, e.g. where a caller has withheld hisCLI.

It will also be appreciated that the term CTI, although originating fromthe computer control of voice telephony, is not limited to voicecommunications and includes other types of communications, e.g.videotelephony, and multimedia.

Furthermore, whereas the above described specific embodiments are thirdparty CTI arrangements, the skilled person will appreciate that thepresent invention is also applicable to first party CTI arrangements.

In the above description, the incoming call was described as beinghandled by the called user's DOT client application. In a variant, theincoming call might be connected directly to the VM 21, without thecalled user's primary COI being alerted to that incoming call, forexample the called user might have set “Divert to Voicemail”.

In another variant, the called user might not be a DOT user and have set“Divert to Voicemail”, and the VM 21 responds to a key press of “one”from the caller in the same way as above. The CTI server 18 recognisesthat the call prima facie seems to be a re-presented call, but that ithas no existing record in respect of the call ID, and uses apredetermined COI specifically for such non-DOT user calls reverted fromthe VM 21.

In the above embodiments and variants, the CTI server 18 checks whetherit has already handled a call by comparing call IDs. Other methods maybe used for this purpose, for example the VM 21 can preserve the DNIS(xxxxx yy5627) that it receives in the original call from the PBX 12,and include that DNIS in the represented call to the extension 8888.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise”, “comprising” and thelike are to be construed in an inclusive as opposed to an exclusive orexhaustive sense; that is to say, in the sense of “including, but notlimited to”.

1. A method of operating a computer telephony integration (CTI) systemcomprising a switch and a CTI controller therefor, voice messagingapparatus connected to the switch, and a plurality of user workstations,each workstation comprising a computer connected to the CTI controllerand a telephone connected to the switch, the method comprising: storing,for each user of the system, a respective first user-associated list ofusers who have assigned a first level of interest in the telephonystatus of that user, herein referred to as that user's first communityof interest, and a respective second user-associated list of users whohave assigned a second level of interest in the telephony status of thatuser, herein referred to as that user's second community of interest;responding to receipt at the switch of an incoming call, referred toherein as an original incoming call, by retrieving from signalling dataof that original incoming call a called user identity, referred toherein as the original called user identity, and by starting a timerfrom a first predetermined value; sending an incoming call message fromthe CTI controller to the respective computers of those members of thatoriginal called user's first community of interest who are currentlylogged on to the CTI controller; responding to receipt of the incomingcall message at those respective computers by generating an alert; inthe event that the timer reaches a second predetermined value, routingthat original incoming call to the voice messaging apparatus and sendinga change icon message to those respective computers to change therespective generated alerts; responding to receipt at the voicemessaging apparatus of that routed original incoming call and ofpredetermined dialled data from the caller by making a related call fromthe voice messaging apparatus to a predetermined called user identity ofthe switch; recognizing that a call received at the switch is such arelated call by virtue of the presence of that predetermined called useridentity in the signalling data of that received call; identifying theoriginal incoming call to which that received call is so related, and,therefore, the original called user identity; and sending an incomingcall message from the CTI controller to the respective computers ofthose members of that called user's secondary community of interest whoare currently logged on to the CTI controller.
 2. A method as in claim1, wherein, when the incoming call message is sent to the respectivecomputers of those members of that called user's secondary community ofinterest who are currently logged on to the CTI controller, it is alsosent to the respective computers of those members of that called user'sprimary community of interest who are currently logged on to the CTIcontroller.
 3. A method as in claim 1, wherein the step of generating analert comprises changing a user-associated icon from an idle state to anincoming call state; and the respective computers respond to said changeicon message to change the respective user-associated icons back totheir idle state.
 4. A method as in claim 1, wherein the step ofgenerating an alert comprises changing a user-associated icon from anidle state to an incoming call state; and the respective computersrespond to said change icon message to indicate that the originalincoming call has been routed to the voice messaging apparatus.
 5. Amethod as in claim 1, wherein the identifying step comprises comparingcall identities of the respective calls.
 6. A method as in claim 1,wherein the identifying step comprises comparing DNIS numbers of therespective calls.
 7. A computer telephony integration (CTI) systemcomprising a switch and a CTI controller therefor, voice messagingapparatus connected to the switch, and a plurality of user workstations,each workstation comprising a computer connected to the CTI controllerand a telephone connected to the switch, the system comprising: meansfor storing, for each user of the system, a respective firstuser-associated list of users who have assigned a first level ofinterest in the telephony status of that user, herein referred to asthat user's first community of interest, and a respective seconduser-associated list of users who have assigned a second level ofinterest in the telephony status of that user, herein referred to asthat user's second community of interest; means for responding toreceipt at the switch of an incoming call, referred to herein as anoriginal incoming call, by retrieving from signalling data of thatoriginal incoming call a called user identity, referred to herein as theoriginal called user identity, and by starting timer from a firstpredetermined value; means for sending an incoming call message from theCTI controller to the respective computers of those members of thatoriginal called user's first community of interest who are currentlylogged on to the CTI controller; means for responding to receipt of theincoming call message at those respective computers by generating analert; means responsive to the timer reaching second predetermined valuefor routing that original incoming call to the voice messaging apparatusand for sending a change icon message to those respective computers tochange the respective generated alerts; means for responding to receiptat the voice messaging apparatus of that routed original incoming calland of predetermined dialled data from the caller by making a relatedcall from the voice messaging apparatus to a predetermined called useridentity of the switch; means for recognizing that a call received atthe switch is such a related call by virtue of the presence of thatpredetermined called user identity in the signalling data of thatreceived call; means for identifying the original incoming call to whichthat received call is so related, and, therefore, the original calleduser identity; and means for sending an incoming call message from theCTI controller to the respective computers of those members of thatcalled user's secondary community of interest who are currently loggedon to the CTI controller.
 8. A CTI system as in claim 7, wherein, whenthe incoming call message is sent to the respective computers of thosemembers of that called user's secondary community of interest who arecurrently logged on to the CTI controller, it is also sent to therespective computers of those members of that called user's primarycommunity of interest who are currently logged on to the CTI controller.9. A CTI system as in claim 7, arranged such that the generated alertcomprises changing a user-associated icon from an idle state to anincoming call state, and wherein the respective computers are arrangedto respond to the change icon message by changing the respectiveuser-associated icons back to their idle state.
 10. A CTI system as inclaim 7, wherein the step of generating an alert comprises changing auser-associated icon from an idle state to an incoming call state; andthe respective computers respond to the change icon message to indicatethat the original incoming call has been routed to the voice messagingapparatus.
 11. A CTI system as in claim 7, wherein the identifying meansis arranged to compare call identities of the respective calls.
 12. ACTI system as in claim 7, wherein the identifying means is arranged tocompare DNIS numbers of the respective calls.